﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SRD.Model.SRD.DTO;
using SRD.Model.SRD.Util;
using System.Data.SqlClient;
using System.Data;
using System.Collections;
using System.Web.UI.WebControls;
using System.Configuration;

namespace SRD.Model.SRD.DAO
{
     public class SetorDAO
    {
         DataClassesSRDDataContext bancoDados = new DataClassesSRDDataContext();
         
         public SetorDAO() 
         {
             
         }
                  
         // metodo de busca por parte do nome do setor         
         public IQueryable findByName(string nomeSetor)
         {
             var resultado = from s in bancoDados.SETORs
                             where s.NM_SETOR.Contains(nomeSetor)
                             select s;
             return resultado;

         }

         //metodo de busca pelo id do setor 
         public SETOR findById(SETOR setor)
         {
             var resultado = (from s in bancoDados.SETORs
                              where s.SETOR_ID == setor.SETOR_ID
                              select s).First();

             return resultado;
         }

         //metodo para busca completa do setor ordenado
         public IQueryable findAll()
         {
             var resultado = from s in bancoDados.SETORs
                             select s;

             return resultado;
         }

         public IQueryable findSetorByEmpresaId(Int32 empresa)
         {
             var resultado = (from s in bancoDados.SETORs
                              where s.EMPRESA_ID == empresa
                              select s);

             return resultado;
         }

        // metodo para iserção do setor
         public string insert(SETOR setor)
         {
             try
             {
                 bancoDados.SETORs.InsertOnSubmit(setor);
                 bancoDados.SubmitChanges();
                 return "Inclusão realizada com sucesso!";
             }
             catch (Exception o)
             {
                 return "Houve erro na inclusão: " + o.Message;
             }
         }

         // metodo para atualização do setor
         public string update(SETOR setor)
         {
             try
             {
                 var setorExistente = (from s in bancoDados.SETORs
                                         where s.SETOR_ID == setor.SETOR_ID
                                         select s).First();
                 setorExistente.NM_SETOR = setor.NM_SETOR;
                 setorExistente.ATIVO = setor.ATIVO;
                 setorExistente.EMPRESA_ID = setor.EMPRESA_ID;
                 bancoDados.SubmitChanges();
                 return "Atualização realizada com sucesso!";
             }
             catch (Exception o)
             {
                 return "Houve erro na atualização: " + o.Message;
             }
         }

        // metodo para remoção do setor
         public string delete(SETOR setor)
         {
             try
             {
                 var setorExitente = (from s in bancoDados.SETORs
                                        where s.SETOR_ID == setor.SETOR_ID
                                        select s).First();
                 SETOR set = setorExitente;
                 bancoDados.SETORs.DeleteOnSubmit(set);
                 bancoDados.SubmitChanges();
                 return "Registro excluído com sucesso!";
             }
             catch (Exception o)
             {
                 return "Houve erro ao excluir: " + o.Message;
             }
         }
    }
}
